package com.njxxted.activiti.modules.process.model.service;

import com.njxxted.activiti.common.response.ResponseVo;
import com.njxxted.activiti.modules.process.cmd.BpmnModelCmd;
import org.activiti.engine.repository.Model;

import javax.servlet.http.HttpServletRequest;

/**
 * 描述：流程引擎模型 service
 * <p>
 * 作者：Ostrich Hu
 * 时间：2019/8/30 16:50 星期五
 */
public interface IActModelService {
    /**
     * 创建模型
     *
     * @param bpmnModelCmd
     * @return
     */
    Model createBpmnModel(BpmnModelCmd bpmnModelCmd);

    /**
     * 根据条件查询model
     *
     * @param request
     * @return
     */
    ResponseVo getModel(HttpServletRequest request);

    /**
     * 根据模型id删除
     *
     * @param modelId
     * @param isEmpty
     * @return
     */
    boolean deleteModel(String modelId,String isEmpty);

    /**
     * 根据模型id部署模型
     *
     * @param modelId
     * @return
     */
    boolean deploymentModel(String modelId);

    /**
     * 查询模型的所有流程节点
     *
     * @param key 流程定义key
     * @return
     */
    ResponseVo getFlowNode(String key);

    /**
     * 查询流程模型（用于发起流程弹窗数据）
     *
     * @param type
     * @return
     */
    ResponseVo getModelForStartInstance(String type);
}
